var webpack = require('webpack');
var path = require('path');
//var HtmlwebpackPlugin = require('html-webpack-plugin');
////独立出css样式
var ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
	//入口文件
	entry : {
		main : path.resolve(__dirname, 'src/router.js'),
		buy : path.resolve(__dirname, 'src/router2.js'),
		vendor : ['vue', 'vue-router']
	},
	//输出
	output : {
		///输出目录的配置，模板、样式、脚本、图片等资源的路径配置都相对于它
		path : path.resolve(__dirname, './dist'),
		//模板、样式、脚本、图片等资源对应的server上的路径
		publicPath: '/dist/',
		//每个页面对应的主js的生成配置。比如我的app.js打包后就为  ./main.js         
		filename : '[name].js'
	},
	module : {
		//模块资源转换器
		loaders: [{
            test: /\.vue$/,
            loader: 'vue-loader'
        }, {
            test: /\.js$/,
            loader: 'babel',
            exclude: /node_modules/
        }, {
            test: /\.css$/,
            loader: ExtractTextPlugin.extract({
                fallbackLoader: "style-loader",
                loader: "css-loader?sourceMap"
            })
        }, {
            test: /\.(sass|scss)$/,
            loader: ExtractTextPlugin.extract({
                fallbackLoader: "style-loader",
                loader: "css-loader?sourceMap!sass-loader"
            })
        }, {
            test: /\.(png|jpg|gif|svg)$/,
            loader: 'file',
            query: {
                name: '[name].[ext]?[hash]'
            }
        }, {
            test: /\.(eot|ttf|woff)$/,
            loader: 'file'
        }, {
            test: /\.md$/,
            loader: 'file',
            query: {
                name: "[name].[ext]?[hash]"
            }
        }]
	},
	//配置应用层的模块（要被打包的模块）解析
	resolve : {
		// require时省略的扩展名，如：require('module') 不需要module.js
        extensions: ['', '.js', '.vue'],
        //把用户的一个请求重定向到另一个路径
        alias: {
            //filter: path.join(__dirname, './src/filters'),
            'components': path.join(__dirname, './src/components')
        },
		fallback : path.join(__dirname, "node_modules")
	},
	resolveLoader : {
		fallback : path.join(__dirname, "node_modules")
	},
	plugins : [
	    //提取公共代码，在有多个entry时，这些入口文件可能会有一些公共代码
        //将entry中vendor包含的文件提取到公共js中
	     new webpack.optimize.CommonsChunkPlugin({
            name: ["vendor"],
            filename:  "vendor.js",
            minChunks: Infinity
        }),
	    //提取文本插件
	     new ExtractTextPlugin({
            filename: "style.css",
            allChunks: true,
            disable: false
        }),
	     //设置全局变量$和jQuery
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery"
        })
	]
	//插件
	// plugins : [
	// 	//添加插件 会自动生成一个html文件
	// 	new HtmlwebpackPlugin({
	// 		title : "fancy",
	// 		filename : "../index.html"
	// 	})
	// ]
}

//故障处理 打印错误
// ## webpack error -details 